In recent years, computer technology has generally become more accessible to a wider range of end users. This accessibility has, at least in part, been the result of the availability of what are generally thought of as more user-friendly graphical user interfaces. These interfaces take advantage of a computer system's high-resolution graphic display system to make operation of the computer system more intuitive to the user.
Along with the transition from text-based user interfaces to a graphical user interface there has also generally been an increase in the graphic applications utilized on modern computer systems. For example, current computer systems are often capable of multi-media displays such as full-motion video or computer generated animations which utilize high-resolution color displays to present information to a user.
An increase in the prevalence of more graphic-intense applications and interfaces has generally increased the requirements for a computer system to have the ability to provide for high-resolution color display of information. For example, many current personal computers are capable of displaying graphic information at both spatial and color resolutions only possible with dedicated graphics workstations in the past. Furthermore, increases in processing capabilities of central processing units and dedicated graphics processors has allowed for color determination at color resolutions in excess of what may be displayed by the display device. For example, a graphics processor may determine colors to a resolution of 24 bits or more while the display device may only be capable of displaying 16 bits of color resolution or less.
These changes in the uses and operation of computer systems have, to many users, increased the importance of the quality of the display capability of a computer system. The perceived quality of an image appearing on a computer video screen depends on the color resolution (the number of displayable colors and intensities) and spatial resolution (the number of picture elements or pixels in the display) of the video display hardware. Color resolution is measured by the number of color/intensity pairs that can be simultaneously displayed, or are "active" on screen. For example, an IBM-compatible personal computer with a VGA-based display system can simultaneously display 16 color/intensity combinations. A personal computer with a "super" VGA (SVGA)-based display system can simultaneously display 256 color/intensity combinations.
Color resolution is often quantified by the number of data bits for storing each pixel of the image in a computer's video memory (also known as the bit "depth" of the frame display buffer). Display systems with four bits per pixel can display only 16 simultaneous color/intensity combinations. As the number of bits per pixel grows from four to eight to twelve, etc., the size of the displayable color palette and the number of simultaneously displayable colors/intensities grows.
State-of-the-art display systems which go well beyond VGA and SVGA typically have 24 (or more) bits per pixel for displaying about 16.8 million color/intensities simultaneously. They also may provide a spatial resolution of 1280.times.1024 or higher. A 24 bit color system typically does not require color palettes which may use a look-up table to translate a bit value to a color based on the selected color palette because the values stored in the screen memory for each pixel directly indicate the values of the red, green and blue components to appear on the screen. The colors are said to be "direct mapped." Direct mapping generally allows any pixel to be any color which may be defined by the 24 bits of color resolution.
Typically, a 24 bit color resolution has eight bits in each color dimension of red, green, and blue. The specified bit values are called an RGB value (for red, green and blue), with each eight-bit value representing an intensity level of the respective color between 0 (zero intensity) and 1 (full intensity). Colors are specified by an ordered triple of values corresponding to the intensities of red, green and blue that are mixed to form the color. Red, for example has an RGB value of (1, 0, 0) while purple, which is half-intensity red and half-intensity blue, has an RGB value of (1/2, 0, 1/2).
As can be appreciated by those of skill in the art, the differences in display capabilities from computer system to computer system as well as differences between processing capabilities and display capabilities often may require that a high-resolution color value for a pixel be converted to a lower resolution color value. For example, an RGB color value calculated with more than 24 bits of color resolution may need to be converted to a 24 bit color value to enable display on the computer system. Similarly, a 24 bit or high color resolution value may need to be converted to the SVGA or VGA standard for display or the three bytes of a 24 bit value (8 bits red, 8 bits green, 8 bits blue) may be converted to a two byte representation (5 bits red, 5 bits green, 5 bits blue). To accomplish this decrease in color resolution a number of conventional systems have been developed. These systems are described in U.S. Pat. No. 5,455,600. These systems include, among others, truncating the color values, rounding the color values or "dithering" which may include either ordered or error diffusion and then truncation or rounding. Similarly, a system for reducing color error in a printer is described in U.S. Pat. No. 5,396,346. These systems generally attempt to reduce differences in color between the high-resolution color displayed and the lower resolution color displayed. While these systems may be suitable in certain applications, generally, each method may result in some visual artifact which may distract from the image displayed. Furthermore, certain of these methods may cause errors to be introduced into the image generated. For example, in conventional dithering used in the reduction of resolution, errors in the image are intentionally introduced in the form of noise which is introduced prior to the reduction in resolution to avoid banding artifacts.
Also, conventional methods of resolution reduction focus primarily on reducing artifacts while maintaining color accuracy between the higher and lower resolutions. However, human vision is more sensitive to changes in brightness of a picture element than to minor variations in color. The emphasis on color consistency between resolutions may result in changes in brightness or intensity in the generated image which may detract from the generated image. Accordingly, there exists a need for a method of reducing the color resolution of pixel values to be displayed without producing unwanted artifacts which detract from the image to be displayed.